import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout,
                            QPushButton, QApplication)

class MyWindow(QWidget):

    def __init__(self):
        super().__init__()

        grid = QGridLayout()
        self.setLayout(grid)

        names = ['Clear', 'Back', '', 'Close',
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '1', '2', '3', '-',
                 '0', '.', '=', '+']

        positions = [(i,j) for i in range(5) for j in range(4)]

        for pos,name in zip(positions, names):
            if name == '':
                continue
            button = QPushButton(name)
            grid.addWidget(button, *pos)

        self.move(300, 200)
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    win = MyWindow()
    sys.exit(app.exec_())
